package cn.js.sangu.unitStore.common.config;

import cn.js.sangu.unitStore.common.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 * 说明：拦截器配置规则
 * 作者：linshuo
 * 日期：2024/8/11 9:29
 */
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {

    /**
     * 添加拦截器规则的方法
     * @param registry
     */
    @Override
    protected void addInterceptors(InterceptorRegistry registry){
        //在注册表添加一个自定义的拦截器，并设置拦截路径为所有请求,但需要放行开放端口
        registry.addInterceptor(jwtInterceptor())
                .addPathPatterns("/**") //拦截所有
                .excludePathPatterns("/login/**"); //排除登录接口
        //在父类添加拦截器时，将此注册表对象放入。
        super.addInterceptors(registry);
    }

    /**
     * 注册自定义的拦截器
     * @return
     */
    @Bean
    public JwtInterceptor jwtInterceptor(){
        return new JwtInterceptor();
    }

}
